מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!"

Transcript

1 מיון ערימה (Heapsort) מבני נתונים חלק I מיון מבני נתונים ד"ר ערן לונדון. הגדרת ערימה ערימה (בינארית) הינה מערך אשר ניתן להציגו כמו עץ בינארי מלא או כמעט מלא כאשר כל קודקוד בעץ מתאים לתא במערך. העץ הינו מלא בכל הרמות מלבד הרמה (השורה) האחרונה (במקרים שבהם העץ הינו כמעט מלא) שיכולה להיות לא שלמה אבל היא תהיה מלאה מהקצה השמאלי עד לקודקוד כלשהו באותה רמה (שורה) נסמן: [A] length גודל המערך. [A] heap size מספר האלמנטים בערימה. כמובן ש [A] heap size [A] length (מכיוון שלא תמיד גודל הערימה יהיה זהה לגודל המערך). תזכורת לגבי עצים: l עץ בינארי הדרגה של כל קודקוד היא לכל היותר. l עץ בינארי שלם כל העלים באותו העומק ולכל הקודקודים דרגה. l עץ בינארי מלא כל קודקוד הוא עלה או שדרגתו בדיוק. ראוי קודם כל להגדיר את הבעיה ואז להציע דרכים לפתרונה הגדרה של המושג מיון מיון הוא אלגוריתם אשר הקלט שלו הוא מערך A בגודל :n A = [a, a,..., a n ] ואילו הפלט הינו פרמוטציה של המערך, בסדר עולה או יורד, דהיינו: A = [ a σ(), a σ(),..., a σ(n) ] כאשר: σ(n).a σ() a σ() a הגדרה 0. אלגוריתם מיון מכונה ממין במקום in) Sorts (place אם מספר התאים הנוספים אינו תלוי ב n, כלומר, מספר התאים הנוסיפים הנדרשים הוא קבוע () O. פרמוטציה=תמורה. כלומר סדר כלשהו של האיברים במערך. ניתן לקרוא עוד על פרמוטציות בסיכום של מבנים אלגבריים בסעיף.5 (עמוד 5, מה שנקרא שם: S) X ובפרק 8 (עמוד 8). שורש העץ הינו [] A, וככה בעיקרון בנוי העץ: i a i i+ b c האבא תמיד יהיה גדול מהילדים שלו:.a b a c במילים אחרות לכל קודקוד שהוא אינו השורש ( i):.a [P arent (i)] A [i] מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ! כדאי לזכור (כמתואר בתרשים): P arent (i) = i Left (i) = i Right (i) = i +.. הגדרת גובה של צומת (קודקוד) בעץ הגובה של קודקוד בעץ מוגדר ע"י המסילה כלפי מטה שצריך לעבור בעץ מאותו קודקוד עד לעלה הכי רחוק כמובן שזה תלוי על איזה מערך מדובר. לא כל מערך הוא ערימה (זה תלוי במיקומי הערכים שבו).

2 8 5 (כלומר עלה ברמה הכי נמוכה, יכולות להיות כמובן כמה מסילות או דרכים כאלה), ע"י מסילה פשוטה (ללא מעגלים). למשל (ניקח עץ בינארי שאינו ערימה): הגובה של קודקוד הינו. הגובה של קודקוד הינו 0. הגובה של 0 הינו. לכן, הגובה של העץ הינו הגובה של השורש, במקרה שלנו זה הגובה של קודקוד. היא איברים n עם ערימה של טענה. הגובה.Θ (log n). שימושים שונים בערימה הפעולה זמן הריצה O (log n) Θ (n) O (n log n) O (log n) O (log n) HEAPIFY BUILD-HEAP HEAPSORT EXTRACT-MAX INSERT HEAPIFY.. זהו אלגוריתם אשר מהווה חלק מאלגוריתם מיון הערימה. קלט האלגוריתם: A מערך, i מצביע לאינדקס במערך. חשוב לציין כאן (בשביל לעשות קצת סדר) שאנחנו בעצם עובדים עם מערך, כלומר, ערימה היא בעצם מערך, אבל ישנה דרך הצגה נוחה לאותו מערך והיא עץ בינארי שלם (או כמעט שלם). הנחה לגבי הקלט: אם ניקח קודקוד בעץ, אזי התת עץ שמימינו והתת עץ שמשמאלו, כלומר: (i),left (i), Right הינן ערימות. חשוב לזכור שעדיין יכול להיות שאותו קודקוד [i] A קטן משני הילדים שלו, למשל: ההנחה לגבי הקלט מבטיחה לנו שאם נבחר את הקודקוד שיש בו (הקודקוד עם העיגול הכפול) אזי כל מה שיש מתחתיו, מימינו ומשמאלו, הוא ערימה (ש 8,5 הם השורשים של שתי הערימות (של שני העצים)). יש קודקודים מתחת ל 5,8 אך הם אינם מופיעים בשרטוט. רעיון האלגוריתם: אנחנו בודקים: האם הקודקוד גדול משני הבנים שלו? אם כן אז סיימנו. אם לא מחליפים אותו עם הגדול משני בניו. כעת, אחרי שהחלפנו, אנחנו עושים את אותו הדבר לקודקוד שהחלפנו, כלומר: נניח שבחרנו בקודקוד עם הערך (זה עם העיגול הכפול), אזי אחרי ההחלפה זה יראה כך: 8 5 כעת אנחנו נבצע את אותה בדיוק בדיוק עם הילדים החדשים של ובמידת הצורך נחליף שוב... וכך הלאה, עד שנגיע לעלים... הפלט הוא כמובן שהחל מהמיקום של הקודקוד הנבחר בהתחלה יש לנו ערימה... זמן הריצה של אלגוריתם זה עבור ערימה בגודל n הוא.O (log n).. בניית ערימה BUILD-HEAP זמן הריצה של בניית ערימה ממערך נתון הינו (n) O. (התחלת הרעיון בקצרה: אין לנו צורך לבדוק את העלים, לכן כאשר אנחנו נבנה ערימה ממערך אנחנו נתחיל length(a). מהקודקודים שאינם עלים שזה: length(a) (וככה כלומר, נתחיל מהקודקוד שמספרו אנחנו מדלגים על כל העלים, כי הוכחנו בעבר שבעץ בינארי length(a) קודקודים שאינם עלים, ולכן הקודקוד יש שמספרו הסידורי הוא אזי הוא בוודאי אינו length(a) עלה וכך אלה שמספרם הסידורי קטן ממנו, כל השאר הם עלים) ונרד עד לקודקוד מספר, על כל אחד מהקודקודים הכוונה כמובן היא לערך הקודקוד או התא במערך.

3 מבני נתונים נעשה.HEAP IF Y בהמשך הדרך גם יש אינדוקציה...). כעת נעשה HEAP IF Y לראש העץ ונקבל: למשל: כעת, בגלל שיש לנו רק שני קודקודים האלגוריתם הסתיים (שמים את השורש לפני ה 8 ואז את ה וקיבלנו.(, 5, 8 5 במקרה הזה היינו מתחילים מ 5 כי הקודקוד ש"מספרו הסידורי",, הוא הקודקוד עם המספר הסידורי הכי גבוה שאינו עלה... לאחר מכן אנחנו ממשיכים לקודקוד שערכו הוא (כי מספרו הסידורי הוא ).. אלגוריתם מיון הערימה HEAPSORT אחרי שהגדרנו את שתי הפעולות הפעולות הנ"ל (ב. ) אנחנו יכולים לבנות בעזרתן אלגוריתם למיון באמצעות ערימה. אלגוריתם שיקבל מערך שהוא כבר ערימה ויעבוד באופן הבא: כל פעם הוא יוציא את שורש העץ וישים אותן בתא "בצד" (כי זה יהיה התא עם הערך הגדול ביותר), וישים את [i] A העלה עם הערך הכי קטן במקום השורש. אז עושים (,A) HEAP IF Y (לשורש) ושוב פעם מוציאים, אחרי ה HEAP IF Y את מה שיש בשורש. למשל: במקרה הזה מה שיהיה לנו הוא שנוציא את 8 ובמקומו נשים את ולכן, מה שנקבל הוא: מיון מהיר מיון מהיר הוא אלגוריתם רקורסיבי שעובד בשיטת ההפרד ומשול, כלומר, אנחנו מחלקים את המערך לשני חלקים באופן רקורסיבי ו"שולטים" בכל אחד מהם כלומר, ממינים כל אחד מהחלקים ל כמו את הגדול (ולכן גם אותו מחלקים ל ). וכאשר אנחנו משלבים את תתי המערכים אנחנו מקבלים אותם שהם כבר ממוינים. וכך בעצם גם המערך ההתחלתי מתקבל כפלט כמערך ממוין. חשוב לזכור: כשאר אנחנו מפצלים את המערך אסור ששום תת מערך יהיה ריק, כלומר אם יש לנו מערך בגודל n אזי בחלוקה ל צד אחד יהיה בגודל n i והצד השני יהיה בגודל n. i זמן הריצה הממוצע של מיון מהיר הינו (n O n) log ובמקרה הגרוע ביורת זמן הריצה הינו ( O. ( n. כיצד אלגוריתם מיון מהיר עובד? נתון לנו מערך כלשהו, למשל: 6 8 ראישת כל מה שנבחר הינו איבר הפיבוט (הציר), ולשם הפשטות ניקח את 6 שהוא האיבר הראשון להיות הציר (זה יכול להיות גם איבר אחר, אבל בשביל הפשטות נבחר את הראשון), ונתחיל למיין: אנחנו רוצים כי כל מה שיהיה משמאלו יהיה קטן או שווה לו כיצד עושים זאת? אנחנו מתחילים לסרוק את המערך משני הצדדים, כלומר: 6 8 i j כאת אנחנו עושים את הדבר הבא: מקדמים את j (לכיוון i) עד שהאיבר ש j מצביע עליו יהיה קטן או שווה לפיבוט,

4 מבני נתונים ואת i (לכיוון j) עד שהאיבר ש iיצביע עליו יהיה גדול או שווה לפיבוט. כעת, אם i < j נחליף בין התאים. אחרת נחלק את המערך לשני חלקים ונעשוה שוב מיון מהיר לכל אחד מהחלקים... (ככה נמשיך עד שנגיע למצב שיש תאים בודדים). למשל, במקרה שלנו: על ההתחלה התנאי הזה מתקיים ולכן נחליף, בןי האיברים: 8 6 i j ונקדם את j ב, וכמו כן נקדם את i עד שנמצא איבר שהוא גדול או שווה לפיבוט (ל 6 ): מיון מיזוג גם מיון מיזוג הינו אלגוריתם שזמן הריצה שלו הינו.O (n log n) ישנן מספר גירסאות לאלגוריתם זה, אבל הרעיון הכללי הינו כזה: אנחנו כל פעם מחלקים את המערך ל (גם זה אלגוריתם הפרד ומשול) עד שכבר לא ניתן לחלק, ואז ממזגים את המערכים, למשל: נחלק ל : וכעת שוב פעם נחלק ל : i j ונחליף בניהם: ושוב פעם: 6 8 כעת נתחיל למזג: בהתחלה ניקח כל ונשים את הגדול מימין: 8 6 i j נשים לב שבאיזשהו שלב נגיע למצב ש j i (כלומר.(j i במקרה זה נחלק את המערך ל : כעת נעשה את הדבר הבא: נמזג את שתי הזוגות הראשונים (ישנן כל מיני דרכים למזג, אבל מה שחשוב הוא שלבסוף נקבל מערך ממוין), ניתן לעשות זאת ע"י מיון הכנסה. 5 ולאחר מכן נקבל: ונעשה מיון מהיר לכל אחד מהמערכים וכך הלאה... החלוקה כמובן, היא וירטואלית, כלומר מדובר עדיין באותו מערך ולא בשני מערכים שלאחר מכן צריך לחבר אותם. לפעולת המיזוג ישנן גירסאות שונות. 5 אני לא אסביר כאן על המיון עצמו רק אורמ שזה מיון פשוט יחסית שמתאים בין השאר להכנסת איברים למערך ממוין.

5 וכעת נמזג באותה דרך את הזוג האחרון ונקבל את המערך ממוין מיונים בזמן לינארי ישנם מיונים בזמן ריצה (n) O (שזה אומר שזמן הריצה הוא לינארי), אבל... ישנן הנחות מסוימות על הקלט כדי שמיון זה אכן יעבוד. לפני שניגש למיונים בזמן לינארי חשוב שנגדיר את המושג הבא: מיון יציב. מיון יציב הינו מיון שבמקרה ויש שני איברים שווים אזי בסוף המיון הסדר שלהם נשמר. למשל, אם במערך יש לנו בתא מספר 7 ובתא מספר 7, אזי בסוף המיון שני ה 7 ים יהיו צמודים, אבל זה שהיה בתא יהיה לפני זה שהיה בתא.. מיון מנייה ההנחה במיון מניה היא שניתן לחסום את הקלט ע"י קבוע כלומר גודל הקלט הינו n אבל האיבר הכי גדול בקלט הינו.n כפול K כלומר קבוע O (n) = K n כיצד המיון הזה עובד? נניח המערך הנתון לנו הינו המערך A (אותו מערך כמו בדדוגמאות הקודמות) אזי נשתמש בשני מערכי עזר,B C כאשר B יהיה המערך הממוין. ניתן לראות כי ניתן לחסום את אבירי המערך ע"י 8 ולכן זה יהיה הגודל של מערך C. מערך C יכיל את תדירויות אברי A. 6 8 אזי C יהיה (השורה התחתונה מציינת את מספר התא ובמערך עצמו מה התידרות שלו במערך המקורי): כעת מה שנעשה הוא שנסכות את אברי המערך, כלומר נתחיל מהתא הראשון ובתא השני נשים את ערכו של התא הראשון + התא השני, בשלישי נשים את מה שיש בתא השני + הערך שבתא השלישי, וכך הלאה עד התא האחרון. כעת C יראה כך: כעת נתחיל לבנות את מערך הפלט B: נלך אל התא האחרון ב Aונסמן את ערכו ב j. נסתכל על [[j] B C] ולשם נכניס את j. כעת נוריד את ערכו של [j] C ב ונעשה את אותו הדבר עבור אורך המערך פחות וכך הלאה עד שנגיע לתא הראשון. בדוגמא שלנו: בהתחלה = j נפנה למערך C (מדברים על המערך אחרי שעידכנו אותו, זה שנמצא כאן ממש למעלה...) ונסתכל בתא השני נראה שהערך שם שווה ל, כעת נלך ל B ונשים בתא מספר את j (שהוא גם ) ונקטין ב C את הערך ב. כעת מערך C יראה כך: ומערך B כבר נראה כך: כעת נסתכל על התא האחד לפני אחרון ב A נראה שערכו הוא ולכן =.j כעת נסתכל על [] C ונראה שהוא, לכן נציב את בתא מספר במערך B: ונעדכן את C בהתאם וכך הלאה... לבסוף נחזיר את B כפלט ונקבל את המערך ממוין.. מיון בסיס Sort) (Radix גם הוא מיון יציב שמניח על הקלט שניתן לחסום אותו ב ( n ) O. 5

6 מה שאנחנו עושים הוא שאנחנו דואגים שלכל המספרים יהיה את אותו אורך (אפשר גם להוסיף אפסים לפני במידת הצורך), ואז מתחילים מהספרה האחרונה (ספרת האחדות) ממינים לפיה באופן הבא: מחלקים את המספרים שבקלט לערימות לפי הספרה האחרונה ואז מסדרים כל מספר אחד על השני לפי הספרה האחרונה, כלומר: נניח והקלט שלנו הינו: חלק II עצים אזי זה כבר מחולק לנו לפי הספרה האחרונה (בכל עומדה יש ספרה אחרונה אחרת, במידה והיו מספרים עם אותה ספרת אחדות, אזי היינו שמים אותם אחד מתחת לשני), כעת נערום אותם אחד על השני לפי ספרת האחדות: כעת נחלק את זה לקבוצות לפי ספרת העשרות ונשים אחד על השני שוב (ונקבל שוב את מה שיש למעלה לכן לא עשיתי את השלב הזה אלא רק תיארתי אותו). ולבסוף נעשתה את זה לפי ספרת האחדות, כלומר נפזר את המספרים ע"פ ספרת האחדות: וכאשר נערום את זה אחד על השני נקבל את המספרים ממוינים. (ניתן לראות כי כבר הם ממוינים). 5 עצי חיפוש בינאריים תזכרות לגבי סימון בעצים: = n מספר הקודקודים. = m מספר הצלעות. 5. הגדרה ומושגים בסיסיים עץ חיפוש בינארי הוא עץ בינארי שללכל קודקוד בו יש בן שמאלי ובן ימני והורה. אם ילד אחד או הורה חסרים, אנחנו ממלאים את החסר ב NIL. נניח כי לנו עץ בינארי T אשר שורשו r. ניקח את אחד הקודקודים בעץ x: אזי כל קודקוד y במסילה r x הינו אב קדמון של x. כדאי לזכור: אם y הוא אב קדמון של x, אזי x הוא צאצא של y. תת העץ של x הינו כל הצאצים של x, או במילים אחרות כל הקודקודים ש x הוא שורשם. נזכיר שני מושגים בסיסיים: קודקוד חיצוני = עלה. קודקוד פנימי = מה שלא עלה. 6

7 8 הוא האבא של ו. ו הם הילדים של, וכמו כן ו הם אחים. השורש הינו הקודקוד היחיד בעץ שיאן לו הורה. מספר הילדים (לא צאצאים!) של קודקוד x נקראת הדרגה של x. אם r הוא שורש העץ אזי אורך המסילה r x נקרא העומק של x. והעומק הכי גדול של העץ נקרא (או מכונה) גובהו של העץ. למשל: 6 8 הדרגה של 8 היא, הדרגה של 6 היא. העומק של 8 הוא והעומק של 6 הוא. גובה העץ = לעומק של = ( הוא שורש העץ). הערך שנמצא בכל קודקוד יסומן ע"י [x].key במקרה שלנו קודקוד x הוא ה טיולים בעצי חיפוש בינאריים 6 ישנן שלושה דרכים לטייל בעץ חיפוש ביארי,Inorder ו Postorder Preorder בכל שלושת הטיולים בעץ אנחנו תמיד פועלים באופן הבא: הקלט הינו קודקוד כלשהו (בדרך כלל זה יהיה שורש העץ, כי אנחנו נרצה להדפיס את העץ כולו) אנחנו קודם הולכים לתת העץ השמאלי ואז לתת העץ הימני, השאלה היא מתי אנחנו מדפיסים את ערך העלה. כמובן שכאשר אנחנו מסימיים מתי שאין יותר לאן להמשיך (כי הגענו לעלה ואז אין לו תת עץ ימני ושמאלי). הדוגמאות של ההדפסה בטבלה הבאה יתחייסו לעץ הבא: עץ בינארי זהו מבנה של קבוצה סופית של קודקודים, כאשר או שאין לו קודקודים בכלל או שהוא מורכב משלוש קבוצות זרות : 6 ˆ קדוקוד אחד שהוא עלה. ˆ עץ בינארי שנקרא תת העץ השמאלי. ˆ עץ בינארי שנקרא תת העץ הימני. עץ בינארי ללא קודקודים נקרא העץ הריק. 5. עץ חיפוש בינארי בעץ חיפש בינארי מתקיים הכלל הבא: עבור קודקוד x: אם קודקוד y נמצא מימינו של x אזי [y] Key [x],key ואם קודקוד y נמצא משמאלו של x אזי מתקיים [x],key [y] Key למשל: 6 אסור לקודקוד להיות ביותר מקבוצה אחת. סוג הטיול Inorder Preorder Postorder מתי מדפיסים את ערך העלה בדוגמא אחרי שנכנסים לתת,,5,6,7,8, העץ השמאלי ברגע שמגיעים 6,,,5,7,8, לקודקוד (לפני שנכנסים לתת העץ השמאלי) אחרי שנכנסים לתת,5,,7,,8,6 העץ הימני חשוב לזכור שכאשר מגיעים לעלה אז תמיד מדפיסים את ערכו לא משנה באיזה סוד של טיול אנחנו... זמן הריצה של הטיולים בעץ הינו שווה והוא (n) O 7

8 5.5 חיפוש איבר מינמלי ומקסימלי בעץ 5.7. עוקב בשביל למצוא איבר מינמלי בעץ אנחנו מתחילים מהשורש (או מקודקוד כשלהו אם רוצים למצוא את המינמלי בתת עץ). בשביל מציאת האיבר המינימלי אנחנו כל הזמן הולכים שמאלה עד שהשמאלי הבא הוא.NIL לגבי האיבר המקסימלי אותו דבר רק ימינה. זמן הריצה של כל אחת מפעולות אלו: (n O. (log 5.6 הוספה של איבר לעץ ההוספה היא יחסית פשוטה אנחנו מוסיפים עלים בלבד. כאשר אנחנו רוצים להוסיף אנחנו מתחילים משורש העץ אם הערך שאנחנו רוצים להוסיף גדול או שווה לו אנחנו הולכים לבן השמאלי, אחרת הולכים לבן הימני. אם יש שם קודקוד אנחנו מתחילים את התהליך מההתחלה רק שבמקום השורש אנחנו עושים את זה לקדוקוד שבו אנו נמצאים כרגע. אם אין קודקוד אנחנו מוסיפים את הערך שלנו כעלה. וסיימנו! זמן הריצה של הוספת איבר לעץ הינו: (n O (log בעץ חיפוש בינארי העוקב של קודקוד מסוים הינו הקודקוד בעל הערך הכי קטן מבין כל הגדולים ממנו. בשביל למצוא את העוקב אנחנו מוצאים את האיבר המינימלי של תת העץ השמאלי 7 של אותו קודקוד ואז מתחילים ללכת ימינה עד שנגיע לעלה קודם אותו דבר בדיוק רק הפוך מציאת הקודם של קודקוד x הינה כך: אנחנו מחפשים את האיבר הכי גדול מבין כל הקטנים, לכן: נחפש את האיבר המקסימלי של תת העץ הימני של x ואז נלך כל הזמן שמאלה עד שנגיע לעלה. הערות: זמן הריצה של מציאת הקודם הוא כמו זמן הריצה של מציאת העוקב: n).o (log 5.7 השמטה של איבר מהעץ ישנן שתי אפרויות או שאנחנו אוצים להשמיט עלה או שאנחנו רוצים להשמיט קודקוד שאינו עלה. אם הקודקוד היני עלה אזי אין בעיה פשוט משמיטים את הקודקוד. למשל, עם מהעץ הבא נרצה להשמיט את אזי: 8 8 אם הקודקוד אינו עלה, אזי אם יש לו בן אחד אזי פשוט מוחקים אותו במקומו שמים את הבן היחיד. אם הקודקוד אינו עלה ויש לו שני בנים אזי אנחנו צריכים למצוא את העוקב שלו ובמקום אותו קודקוד לשים את העוקב... זמן הריצה של השמטה הינו: (n O. (log 7 כלומר, אנחנו מתחילים לחפש את האיבר המינימלי כאשר הבן השמאלי של אותו קודקוד יהיה שורש העץ. 8

9 6 עצים אדומים שחורים 6. בניית עץ אדום שחור בעיקרון, ניתן לבנות עץ אדום שחור חוקי ע"י הוספת קודקוד קודקוד (איך מוסיפים קודקודים יוסבר בהמשך), אבל ישנן עוד כמה שיטות... אציג כאן שתי שיטות מאוד דומות: האחת בונים עץ חיפוש בינארי מאוזן (עד כמה שניתן) ופשוט צובעים את כל העץ בשחור מלבד הרמה שאינה מואזנת (זאת ש"פוגעת" באיזון העץ), למשל: הגדרה עץ אדום שחור הינו עץ חיפוש בינארי אשר לכל קודקוד ישנה תוכנה נוספת הוא צבוע באדום או שחור. 8 כלומר, לכל קודקוד ישנן ארבעה תכונות: ˆ הורה (מלבד השורש כמובן). ˆ בן שמאלי. ˆ בן ימני. ˆ צבע (אדום או שחור). 6.. תכונות העץ לעץ בינארי אדום שחור קיימות מספר תכונות: ˆ השורש הוא תמיד שחור. ˆ אין שני קודקודים אדומים ברצף (כלומר, לא ייתכנו אב ובן אדומים). ˆ אנחנו "מרפדים" את תחתית העץ ב NIL ים (שכאן יסומנו כ ). למשל: 6 ˆ הגובה השחור של כלקודקוד מוגדר היטב, כלומר, אם ניקח קודקוד מסויים בעץ, אזי כמות העלים השחורים שנראה (לא כולל אותו במידה והוא שחור) בכל מסילה פשוטה למטה לאחד העלים תהיה זהה. 8 במהלך הסיכום הזה צמתים אדומים יסומנו וצמתים שחורים יסומנו זה עץ אדום שחור חוקי: ˆ השורש שחור. ˆ אין שני אדומים ברצף. ˆ כל קודקוד שנבחר בעץ, הגובה השחור שלו זהה לכל בכל מסילה פשוטה (כלפי מטה) לאחד העלים. דרך נוספת היא שפשוט נצבע רמה אחת בשחור (השורש) ואז רמה הבאה באדום וכך הלאה... ישנם מקרים שבהם זה לא יעבוד, מבחינת הגובה השחור של העלים (זה קורה כאשר הרמה שאינה מאוזנת, כלומר, זאת שמפרה את איזון העץ צבועה בשחור ומה שמעליה באדום), לכן תמיד כדאי לבדוק את הגובה השחור של הקודקודים הערה: מכאן ואליך לא יוצגו בעצים ה, בהנחה כי הרעיון הובן. כאשר אנחנו נדרשים לצבוע עץ קיים כדי לבדוק אם ניתן לצוע אותו כך שיהיה אדום שחור, כדאי לשים לב למקומות הלא מאוזנים בעץ (היכן שיש תתי עץ שאינם מאוזנים ולאות אם הדבר אפשרי שמה). כלומר, שכל תתי העצים של כל קודקוד בם באותו עומק.

10 6. הוספת קודקוד לעץ כאשר אנחנו רוצים להוסיף קודקוד לעץ הוא תמיד יתווסף כעלה בצבע אדום. אנחנו מסירים את שכבת ה NIL ים (ה ) באופן זמני, מכניסים את העלה האדום, ואז מחזירים את ה NIL ים. למשל, בעץ כאן שלמעלה, ניתן לראות אותו כאילו הוספנו לנו עכשיו את... נחלק את ההוספה לשלושה מקרים: 6.. הוספת עלה לקודקוד שחור במקרה כזה אין לנו שום בעיה! כי: ˆ זה לא יוצר רצף של שני אדומים (הרי הוספנו אותו מתחת לקודקוד שחור). ˆ זה לא פוגע בגובה האדום של ההורים (והאבות היותר עליונים) כי אנחנו לו סופרים קודקודים שחורים בגובה שחור. 6.. הוספת עלה לקודקוד אדום במקרה הזה יש לנו בעיה יש רצף של שני אדומים... אז מה עושים? לפני זה כדאי שנכיר שני מושגים רוטציה לימין ורוטציה לשמאל רוטציה לשמאל בעיקרון כאן אנחנו מוסבבים קודקוד אחד ימינה (במידה וניתן), למשל: γ β α γ α β כדאי לשים לב לכך ש: ˆ מה שקורה בפועל זה שאנחנו רק מעלים קודקוד אחד (או מורידים, אבל בכל מקרה אנחנו משנים את מיקומי שני הקודקודים) אבל הסדר נשאר רק הקודקוד (או תת העץ) האמצעי (β) זז לצומת השנייה! חשוב לזכור את זה...,α,β γ אלו יכולים להיות קודקודים או תתי עצים. רוטציה לימין בדיוק אותו הדבר רק הפוך: כעת ניתן לראות מה קורה שמוסיפים עלה לקודקוד אדום. ישנם ארבעה מקרים במקרה כזה מה שעושים הוא שמסתכלים על דודו של הקודקוד. מקרה ראשון הדוד אדום במקרה הזה נניח כי הכנסנו כעלה האחרון אזי דודו הוא 6 (אחיו של אביו) אנחנו רואים כי הוא אדום כלומר יש לנו מקרה של שני בנים אדומים עם אב שחור. במקרה הזה, הסבא 7, מוותר על צבעו והופך לאדום ואילו שני בניו הופכים לשחורים וע"י כך נפתרה הבעיה. הערה: רק במקרה ש 7 הוא השורש (או במילים אחרות רק במקרה של השורש) אנחנו משאירים אותו שחור ומקבלים את בניו שחורים, לכן במקרה כזה התוצאה תהיה כזאת: מקרה שני הדוד שחור והכנסנו בן מהכיוון של האב (בן ימני לאב ימני או בן שמאלי לאב שמאלי) עצי B (B-Trees) (מתוך תרגיל בית שקיבלנו) γ α β γ β α 0

11 7. הגדרה עץ B-tree הוא עץ T ששורשו הוא: ] T] root ומאופיין ע"י:. כל קודקוד x מכיל את השדות הבאים: [x]. n מספר המפתחות אשר נמצאות בקודקוד.(x). המפתחות עצמם, אשר נמצאים בסדר שאינו יורד, כלומר: key [x] key [x] key [x] key n[x] [x]. משתנה (או "ערך") בולאני אשר אומר לנו אם x הוא עלה. T rue אם כן, F alse אחרת.. כל קודקוד פנימי x מכיל + [x] n פוינטרים [x] c [x],..., c n[x]+ לילדים שלו. היות ולעלה אין ילדים אזי ה c i שלהם אינו מוגדר.. המפתחות [x] key i מפרידים בין המפתחות שנמצאים בכל תת עץ, כלומר: אם k i הוא מפתח כלשהו, אשר נמצא בתת העץ ששורשו הינו [x] c i אזי: k key [x] k key [x] k n[x]+ key n[x]+ [x]. כל העלים באותו הגובה (h h הוא גם גובה העץ). 5. ישנם חסמים עליונים ותחתונים על מספר המפתחות שקודקוד יכול להכיל. חסמים אלו ניתנים לביטוי במונחים של t אשר נקרא המעלה המינימלית של העץ כאשר t N וכאשר: 5. כל הקודקודים הפנימיים מלבד השורש מכילים לפחות: t מפתחות ולפחות t ילדים. אם העץ אינו ריק, אזי השורש חייב להכיל לפחות מפתח אחד. 5. כל קודקוד מכיל לכל היותר t מפתחות. לכן, קודקוד פנימי יכול להכיל לכל היותר t ילדים. אם ישנם בדיוק t ילדים אנו אומרים כי הקודקוד מלא 7. חיפוש בעץ אלגוריתם החיפוש מאוד דומה לחיפש בעץ בינארי. במקום לרדת כל פעם ימינה או שמאלה אנחנו עושים זאת בהתאם למספר הילדים שיש לאותו קודקוד. כלומר, מדובר בהכללה של חיפוש בעץ חיפוש בינארי. כלומר, עבור קודקוד x נבצע + (x) n החלטות (סעיפי החלטה) (במקום בעץ חיפוש בינארי). הקלט של האלגוריתם הוא פוינטר x לשורש העץ ומפתח k שאותו מחפשים. הפלט הוא NIL אם k אינו נמצא בעץ, אחרת הפלט הינו הזוג הסדור (i,y) כאשר y הוא הקודקוד ו i הוא אינדקס כך ש: key i [y] = k תיאור האלגוריתם: נחפש את ה i הקטן ביותר המקיים (k) k > key i וגם.i n (x) נבדוק האם ה i הנ"ל מקיים [x] k: = key i ˆ אם כן נחזיר את (i,x). ˆ אחרת נבדוק האם x הוא עלה: אם כן נחזיר.NIL אם לא נקרא שוב לפונקציה באופן רקורסיבי כאשר נעביר לה את k).(c i [x], זמן הריצה: אנחנו קוראים לפונקציה לכל היותר h פעמים כגובה העץ. כאשר במקרה הכי גרוע נבצע בכל קודקוד t השוואות ולכן זה יהיה סה"כ: O (h t) = O (t log t n). לכל מפתח n ב B-tree עם n מפתחות, גובה h ומעלה המינימלית היא :t h log t [ n + ]

12 מבני נתונים חלק III צפני הופמן 8 חישוב צופן הופמן כיצד מחשבים צופן הופן? נניח ונתונה לנו טבלת התדירויות של כל תו במשפט, אזי מה שאנחנו עושים הוא שלוקחים את שני התווים בעלי התדירות הכי נמוכה וממזגים אותם. למשל אם נתון לנו שהאות a מופיעה פמעים והאות 5 b אזי המיזוג יראה כך: a : b : 5 ומתייחסים ל כאל תו בפני עצמו (כי אנחנו ככל הנראה נרצה להמשיך ולמזג אם במידה וישנם עוד תווים). לבסוף, אחרי שקיבלנו את העץ, אנחנו מוסיפים לכל צלע שמאלית (כלומר, צלע לבן שמאלי) את הערך 0 ולכל צלע ימנית את הערך. לחישוב ערך של תו מסוים אנחנו מתחילים משורש העץ עד לעלה של אותו תו (כל התווים הם בעלים של העץ כמובן) וכל פעם אנחנו מלקטים את הספרה שדרכה אנחנו עוברים (בהתאם לצלע) וזה צופן של התו הספציפי. חשוב לזכור שני דברים:. בשורש העץ אמור להיות לנו סך המופעים הכולל של כל התווים.. אם מדובר בצופן בעברית אזי בסוף שאנחנו כותבים לכל אות את הקוד שלה, אנחנו צריכים לעשות את זה הפוך. למשל, אם נדרשו להצפין את המשפט: הכלב הלך. אזי לבסוף שנכתוב את הצופן עבור כל אות, בשביל זה יהיה נכון נצטרך לכתוב את זה כך: ךלה בלכה. חלק IV אלגוריתמים בתורת הגרפים מטריצת השכוניות הינה מטריצה ריבועית בגודל m m אשר התא (j,i) פירושו ש i שכן של j. ניקח למשל את הגרף המכוון הבא: אזי מטריצת השכנות שלו תהיה: כמובן שאם צלע היא שכנה של עצמה (אנחנו מרשים צלע מקודקוד לעצמו) אזי באלכסון יהיה ולא 0. אם הגרך הנ"ל היה גרף שאינו מכוון אזי מטריצת השכנות היתה: כשמדובר בגרף שאינו מכוון המטריצה היא תמיד סימטרית. רשימה שכנים הינה רשימה של רשימות מקושרות שבכל תא יש קודקוד ואחריו את רשימה השכנים שלו. אנחנו נראה דוגמר של גרף מכוון (אותו גרף שנתון למעלה): חקירת גרף BFS DFS כאשר יש לנו גרף מכוון או לא מכוון ניתן להציג את אותו במצעות שתי אפשרויות: מטריצת שכנויות או רשימת שכנים.

13 כעת, אם היה מדובר בגרף הלא מכוון, או בגרפים שיש לכל קודקוד יותר משכן אחד, אזי ניתן לשים את הקודקודים ברשימה באופן שרירותי, אבל זה כמובן ישפיע על סדר הכניסה לקודקודים באלגוריתמים BFS ו DFS. למשל, במקרה שלנו, אם היה מדובר בגרף שאינו מכוון:. חקירה רוחבית של הגרף BFS באלגוריתם הזה אנחנו נחקור את הגרף לרוחב. הקלט הינו גרף G וקדוקוד מקור.(s V ).s כמו כן, ישנו תור שאופן השימוש בו יוסבר במהלך תיאור האלגוריתם. פלט האלגוריתם הינו עץ מרחקים מינמליים 0 כאשר לכל קודקוד ישנם את המאפיינים הבאים: [u] d המרחק של של כל קודקוד u מקודקוד s (המרחק המינמלי). [u] π הקדוקוד שגילה את קודקוד u, "האבא שלו". (מלבד.(NIL הוא שלו שה π s האלגוריתם לכל קודקוד יכול להיות צבוע באחד משלושת הצבעים הבאים: לבן (צבע ברירת המחדל שלו), אפור ושחור. נתחיל מהכלל הבא: כל קודקוד שנכנס לתור נצבע באפור וכאשר הוא יוצא ממנו הוא נצבע בשחור. האלגוריתם יסתיים כאשר כל הקודקוד יהיו שחורים (והתור יהיה ריק). אנחנו מכניסים קודם כל את קודקוד s לתור וצובעים אותו באפור, אנחנו מוציאים אותו מהתור, צובעים אותו בשחור ואת כל השכנים שלו אנחנו צובעים באפור (ומכניסים אותם לתור) ומסמנים את ה π שלהם ב s ואת ה d שלהם ב. אנחנו שומרים על הכלל הבא: אנחנו נוגעים רק בקודקודים לבנים. אם קודקוד הוא שחור או אפור אנחנו לא נוגעים בו (כלומר, לא מכניסים אותו לתור). כעת, אנחנו מוציאים את הקודקוד הראשון שנמצא בתור מסמנים את כל שכניו הלבנים באפור ואותו בשחור. אנחנו מוציאים את הקודקוד השני בתור מסמנים את כל שכניו הלבנים באפור ואותו בשחור. וכך הלאה, עד שנראה שאין יותר קודקודים לבנים. נוציא את הקודקודים מהתור וקיבלנו עץ מרחקים מינמליים. ביותר. 0 כלומר, עץ שהמרחק של הקודקוד s מכל שאר הקודקודים הינו הקצר. חקירה עומקית של הגרף DFS הקלט ב DFS הוא גרף G עם רשימת השכנים. הפלט הינו גרף חסר מעגלים כאשר לכל קודוק דישנו זמן כניסה אליו וזמן יציאה. גם אם ישנו יותר מרכיב קשירות אחד כולם יכללו בגרף היות ואנחנו עוברים קודקוד קודקוד (ב BFS, לא נגיע אל קודקודים שאינם באותו רכיב קשירות של s). ישנו שעון שכל תזוזה (כניסה אל קודקוד או יציאה ממנו) מגדילה את המונה שלו ב. איך אלגוריתם DFS פועל? הולכים ע"פ רשימת השכנים: מתחילים מהקודקוד הראשון ברשימה וממשיכים לקודקוד הראשון נמצא אצלו ברשימת השכנים, ואז הולכים לקודקוד הראשון אצלו וכך הלאה עד שמגיעים למצב שלא ניתן להמשיך (כמו ב BFS לא נוגעים בקודקוד שכבר היינו בו. אם מגיעים לקודקוד כזה אז: או שממשיכים הלאה לשכן הבא של אותו קודקוד, ובמידה ואין אזי ממשיכים לקודקוד הבא ברשימת הקודקודים [רשימת השכנות]). כל קודקוד שנכסים אליו מעדכנים את זמן הכניסה אליו וכשיוצאים ממנו מעדכנים את זמן היציאה ממנו. לבסוף נקבל גרף קשיר חסר מעגלים. ניקח למשל את הגרף הבא: אזי נלך מ ל וזמן הכניסה של יהיה ושל יהיה וכנ"ל לגבי. אז נראה שאין לאן להמשיך ואז נתחיל לחזור חזרה הזמן יציאה של יהיה של יהיה 5 ושל יהיה 6. ואז נמשיך הלאה בקודקודים (כי סיימנו את,,) ונגיע לקודקוד שזמן הכניסה שלו יהיה 7 וזמן היציאה שלו יהיה.8 והגרף שנקבל הינו:. מיון טופולוגי מיון טופולוגי ניתן לעשות ב DAG בלבד גרף מכוון ללא מעגלים!

14 מיון טופולוגי הוא בעצם סידור לינארי המטרה במיון טופולגי היא שנוכל למיין את האיברים בכיוון אחד, כלומר שכל הצלעות יהיו בכיוון אחד ואז יהיה ניתן להציג את כל הקודקודים בשורה (למשל). איך עושים זאת? עושים DFS לגרף ואז מסדרים את הקודקודים לפי זמן היציאה, למשל בדוגמא שלנו: אזי העץ הפורש המינימלי יהיה: ונשים לב כי כל החצים הם באותו הכיוון... 0 עצים פורשים מינמליים 0. עץ פורש מינימלי (הגדרה) 0. האלגוריתם הפשוט לבנית עץ כזה מגרף G לוקחים קבוצת צלעות A (אשר בהתחלה היא הקבוצה הריקה). וכל עוד A אינה מכילה עץ פורש אנחנו מוסיפים לה את צלע (v,u) בתנאי שהיא צלע בטוחה. בשביל להגדיר מהי צלע בטוחה נגדיר קודם חתך: חתך של גרף לא מכוון G הוא חלוקה של הגרף לשתי קבוצות:.S, V \S צלע (v,u) חוצה את החתך אם כל אחד מהקצוות נמצא בקבוצה אחרת. אנחנו אורמים כי החתך מכבד את A אם אין צלע ב A שחוצה אותו. צלע נקראת צלע קלה אם היא חוצה את החתך ויש לה משקל מינימלי (יכולות להיות כמה שחוצות, אבל כולן צריכות להיות בעל משקל מינימלי [המשקל צריך להיות זהה]). אנחנו יודעים כי צלע זאת היא צלע בטוחה. למשל: 7 נניח ויש לנו גרף G עם פונקצית משקל + R w : E (בהמשך יהיה ניתן להניח גם משקל שלילי) על הצלעות שלו. כלומר לכל צלע ישנו משקל, למשל: אזי המשקל של הינו.7 b) a פירושו המסילה מ a ל b ). כעת, עבור גרף נתון, מכל העצים הפורשים נחפש את תת העץ שסכום משקל צלעותיו הוא מינימלי. למשל ניקל את הגרף הבא: ניתן לראות כי החתך (הקו המקווקו) מכבד את החלוקה של (,) ו (,) ועילו כעת נוכל להוסיף את הצלע הבטוחה (,) כי היא צלע קלה (ויוצרת עץ פורש). כמו כן אם (,) כבר הייתה צלע היה ניתן להוריד אותה ולקחת במקומה את (,) לעץ הפורש. 0. אלגוריתם קרוסקל למציאת עץ פורש מינימלי קלט האלגוריתם הינו גרף G ופונקצית משקל w. באלגוריתם של קרוסקל אנחנו גם מתחילים מקבוצה A שהיא ריקה. 6

15 אנחנו הופכים את כל הקודקודים בעץ לרכיבי קשירות נפרדים (אנחנו באופן וירטואלי משמיטים את כל הצלעות כך נשארים רק הקודקודים). אנחנו ממינים את E (צלעות הגרף) בסדר לא עולה ע"פ המשקל שלהן. כעת אנחנו מתחילים לעבור על הצלעות (מהקטנה לגדולה): אם עבור צלע,u) (v E,u v נמצאים בשני רכיבי קשירות שונים מכניסים את הצלע (v,u) ל A. סיימנו כאשר עברנו על הצלעות וקיבלנו כפלט עץ פורש מינימלי. זמן הריצה של האלגוריתם: ( E O. E ) log 0. אלגוריתם פריים למציאת עץ פורש מינימלי באלגוריתם זה אנחנו נתונים כקלט לא רק גרף ופונקציית משקל, אלא גם קודקוד התחלתי r. אנחנו מכניסים את כל צלעות G לתור עדיפויות Q. כעת נגדיר לכל קודקוד ב G פונקציה.Key נתאחל את ה Key של כל הקודקודים בתור ל מלבד זה של.Key [r] = 0 :r כמו כן:.π [r] = NIL כעת אנחנו מקיימים את הלולאה הבאה עד ש Q יהיה ריק: אנחנו כל פעם מוציאים מ Q את הקודקוד עם הערך המינימלי ובודקים עבור כל שכן שלו v האם: v Q וגם [v] w (u, v) < Key אזי: מעדכנים: π [v] = u וגם v).key [v] = w (u, במילים אחרות: כל פעם שאנחנו מגיעים לקודקוד אנחנו בודקים לגבי כל אחד משכניו אם הוא ב Q וגם משקל הצלע בניהם קטנה מה Key של השכן. אם כן אנחנו מעדכנים שאת v גילה π) [v] = (u u ומעדכנים את ה Key של השכן בהתאם (ב ( v w).,u) זמן הריצה של אלגוריתם זה הינו: ( V O E ) log מסילות קצרות ביותר ומרחקים בחלק הבא, יוצגו הסברים קצרים והדגש יהיה בעיקר על האלגוריתמים השונים (הקלט והפלט שלהם ולא תמיד התיאור שלהם).. הקדמה (מקודקוד מסוים לכל הקודקודים) נתון לנו גרף מכוון עם פונקצית משקל שיכולה להיות גם לא חיוביות. השאלה איך אנחנו מוצאים את המסילה הקצרה ביותר מקודקוד מסוים לכל הקודקודים או מכל קודקוד לכל קודקוד. הערה לגבי מעגלים בגרף: ניתן להניח כין אין מעגלים (או אם ישנן, אז במקרים מסוימים אין טעם להמשיך לחפש מסילות קצרות), כי: א. אם ישנו מעגל חיובי (או שסכומו הינו 0) אזי אין טעם להיכנס אליו. ב. אם ישנו מעגל שלילי אזי נאחנו ניכנס אליו ולא נצא. לכל קודקוד בגרף הזה אנחנו נשים את האורך או המשקל אליו, למשל: 0 כמובן שהערכים בקודקודים יכולים להיות שליליים, יכולים להיות או. בשביל למצוא את המסילות הנ"ל מאותו קודקוד נעשה את הדבר הבא: את קודקוד המקור נאתחל להיות 0 ואת שאר הקודקודים ל. 5

16 . פעולת ההרפיה Relax פעולת ההרפיה אומרת לנו אם ישנה דרך קלה יותר להגיע אל קודקוד. למשל, נניח ונתון לנו המצב הבא: אזי ניתן לראות שאם נלך דרך הצלע הנתונה אזי המשקל עבור המסילה מ s (קודקוד המקור) לקודקוד הימני תהיה קצרה אזי אנחנו עושים את פעולת ההרפיה ונקבל: 5 ונעדכן את זה שגילה את הקודקוד שיש בו 5 להיות קודקוד. באופן כללי התנאי לעידכון (להרפיה) הוא כזה: עבור שני קודקודים,u: v אם v) d [v] > d [u] + w (u, אזי: d [v] = du + w (u, v) וגם π [v] = u. אלגוריתם בלמן פורד (תיאור בלבד) הקלט של אגלוריתם בלמן פורד הינו: גרף, פונקצית משקל וקדוקוד מקור. האלגוריתם מחזיר אמת אם אין מעגל שלילי בגרף ושקר אם ישנו מעגל שלילי. האלגוריתם עוזר לנו למצוא את המסילה הקלה ביותר לכל קודקוד מקודקוד המקור. זמן ריצת האלגוריתם הינו ( E O. V ) ראשית כל אנחנו מאתחלים את כל הקודקודים כמתואר ב.. ומגדירים קבוצת קודקודים = S. אנחנו מייצרים תור עדיפויות Q שאליו נכניס את הקודקודים וכל פעם שנשלוף ממנו קודקוד זה יהיה המינימלי. אנחנו נוסיף את הקודקוד ל S ומיד אחרי ההוספה נעשה Relax לכל הצלעות היוצאות מאותו קודקוד. זמן הריצה: זמן הריצה יכול להשתנות כתלות באירך שאנחנו שולפים את הקודקודים: אם אנחנו שולפים את הקודקודים ממערך אחד אחרי השני (קודקוד מס' ואז וכך הלאה...) אזי זמן הריצה הינו:.O ( V ) אם אנחנו משתמשים בערימת מינימום (השורש הוא האיבר המינימלי) אזי זמן הריצה הינו: ) V O (( V + E ) log ואם אנחנו משתמשים בערימת פיבונאצ'י אזי זמן הריצה הינו: E ) O ( V log V + (זהו זמן הריצה הטוב ביותר). מסילות קצרות ביותר ומרחקים בין כל זוגות הקודקודים מקודם דיברנו על כך שיש קודקוד מקור ורצינו למצוא את המרחקים הקלים ביותר ממנו לכל קודקוד בגרף מכוון עם פונקצית משקל לכל צלע. כעת אנחנו מדברים באופן כללי אנחנו רוצים למצוא את המסילות הקלות ביותר שישנן בלי קודקוד מקור.... מטריצת המסליות. אלגוריתם בגרף מכוון חסר מעגלים (DAG) הקלט הינו גרף, פונקציית משקל וקודקוד מקור. היות ומדובר ב DAG אזי אנחנו עושים מיון טופולוגי, ולכל קודקוד שאנחנו לקוחים ע"פ המיון הטופולוגי אנחנו עושים Relax לכל השכנים שלו..5 אלגוריתם דייקסטרה (Dijkstra) אלגוריתם זה מאוד דומה לבלמן פורד רק שזמן הריצה שלו טוב יותר. כמו כן, אנחנו גם מניחים באלגוריתם זה כי בגרף אין משקלים שליליים. 6

ל הזכויות שמורות לדפנה וסטרייך

ל הזכויות שמורות לדפנה וסטרייך מרובע שכל זוג צלעות נגדיות בו שוות זו לזו נקרא h באיור שלעיל, הצלעות ו- הן צלעות נגדיות ומתקיים, וכן הצלעות ו- הן צלעות נגדיות ומתקיים. תכונות ה כל שתי זוויות נגדיות שוות זו לזו. 1. כל שתי צלעות נגדיות

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים חזרה מבנה נתונים אמצעי לאחסון נתונים במחשב. יש הרבה סוגים שונים, וצריך להשתמש במבנה שהכי מתאים לבעיה שלנו מבחינת שימוש בנתונים הוספה, מחיקה

Διαβάστε περισσότερα

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ). מבוא לפרק: : עצים.(ree) עצים הם גרפים חסרי מעגלים. כך, כיוון פרק זה הוא מעין הפוך לשני הפרקים הקודמים. עץ יסומן לרב על ידי במשפטים 8.1-8.3 נפתח חלק מתכונותיו, ובהמשך נדון בהיבטים שונים של "עץ פורש" של

Διαβάστε περισσότερα

מבני נתונים עצים שיעור 7

מבני נתונים עצים שיעור 7 בס ד מבני נתונים עצים שיעור 7 שי גולן כ ח בניסן, תשע ו 6 במאי 2016 תקציר בתרגול זה נתחיל לדון בעצים. נגדיר עצים כלליים ועצים בינאריים, ונציג את ההגדרות הבסיסיות בתחום. נתרגל הוכחת תכונות של עצים באמצעות

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין, 009 מבני נתונים סיכום למבחן, יולי sashag@cs מאת : סשה גולדשטיין, 7:50,3.7.09 עדכון אחרון : בשעה הגבלת אחריות הסיכום להלן הוא האינטרפרטציה שלי של החומר, שממש לא חייבת להיות נכונה או מייצגת את זו של הסגל.

Διαβάστε περισσότερα

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n, חידה לחימום נתון פיגום משולש של מוטות המחברים קודקודים ויוצרים קומות של משולשים קטנים, כמודגם באיור הבא, בו מתואר פיגום משולש בן שתי קומות: משימתו של פועל העובד בפיגום היא להתקדם מן הקודקוד השמאלי התחתון

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

Διαβάστε περισσότερα

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של.

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של. מבני נתונים תרגיל 2 פתרונות מיון מהיר 1. הריצו את השיטה partition על המערך הבא. הראו את שלבי הריצה השונים. 6, 10, 20, 4, 2, 15, 5, 99, 12, 1 אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל

Διαβάστε περισσότερα

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

מבני נתונים אדמיניסטרציה דר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: מבני נתונים בס"ד, ט' אדר א' תשע"א: שעור 1 אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: בחינת מגן 20%. תרגילים: 14 13, מורידים את האחד הכי גרוע. 10% מהציון. אתר: www.cs.huji.ac.il/~dast

Διαβάστε περισσότερα

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות 1. מצאו צורה דיסיונקטיבית נורמלית קנונית לפסוקים הבאים: (ג)

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37 תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי................................................ 2 2 מיון בועות. Bubble Sort............................................ 2 3 מיון מיזוג. Merge Sort............................................

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m. פתרון למבחן במבני נתונים, מועד א', קיץ 2005 חלק א' שאלה 1 א. רכיב הקשירות החזק של קודקוד x בגרף מכוון הינו אוסף כל הקודקודים y שמקימים שיש מסלול מ- x ל- y וכן מסלול מy ל- x. טעויות נפוצות שכחו לכתוב שזה

Διαβάστε περισσότερα

logn) = nlog. log(2n

logn) = nlog. log(2n תכנוןוניתוחאלגוריתמים סיכוםהתרגולים n log O( g( n)) = Ω( g( n)) = θ ( g( n)) = תרגול.3.04 סיבוכיות { f ( n) c> 0, n0 > 0 n> n0 0 f ( n) c g( n) } { f ( n) c> 0, n0 > 0 n> n0 0 c g( n) f ( n) } { f ( n)

Διαβάστε περισσότερα

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #8-9

מבני נתונים ואלגוריתמים תרגול #8-9 מבני נתונים ואלגוריתמים תרגול #89 מציאת מסלולים קצרים הבעיה: נתון גרף ממשוקל רוצים למצוא את המסלול הקצר בין זוג קודקודים עיקרון הרלקסציה של קשת: בדיקה האם ניתן לשפר מסלול מ s ל v ע"י מעבר דרך קודקוד u:?

Διαβάστε περισσότερα

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט. פרק סיבוכיות פרק סיבוכיות המושג יעילות מהו? במדעי המחשב היעילות נמדדת בעזרת מדדי סיבוכיות, החשובים שבהם: של אלגוריתמים יעילותם תוכן הפרק: יעילות מהי (זיכרון וזמן, זמן ריצה T( של אלגוריתם מהו, מהם case,

Διαβάστε περισσότερα

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה אלגוריתמים בתורת הגרפים פתרון תרגיל מס' 2 לשאלות והערות נא לפנות לאילן גרונאו (shrilan@cs.technion.ac.il) א) ב) ג) גרף דו-צדדי (bipartite) הינו גרף (E )G V, אשר קיימת חלוקה של צמתיו לשתי קבוצות U,W e =

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק ראשון

אלגוריתמים בתורת הגרפים חלק ראשון גירסה 1. 11.11.22 אלגוריתמים בתורת הגרפים חלק ראשון מסמך זה הינו הראשון בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

Διαβάστε περισσότερα

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ, עץץץץ AVL הגדרה: עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1,, או 1-. h(t left(x) ) - h(t right(x) ) 1 במילים אחרות: לכל צומת x בעץ, בעץ AVL שומרים עבור כל צומת

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

אלגוריתמים / תרגיל #1

אלגוריתמים / תרגיל #1 1 אריאל סטולרמן אלגוריתמים / תרגיל #1 קבוצה 02 (1) טענה: אם בגרף לא מכוון וקשיר יש 2 צמתים מדרגה אי זוגית ושאר הצמתים מדרגה זוגית, זהו תנאי הכרחי ומספיק לקיום מסלול אויילר בגרף. הערות: הוכחה: התוספת כי

Διαβάστε περισσότερα

מבני נתונים (234218) 1

מבני נתונים (234218) 1 מבני נתונים (234218) 1 חומר עזר לבחינה 13 בספטמבר 2016 שימו לב: מותר לצטט טענות המופיעות בדף זה ללא הוכחה. כל טענה אחרת, שאינה מופיעה באופן מפורש, יש לנמק באופן מלא. נימוקים מהצורה "בדומה לטענה שבחומר

Διαβάστε περισσότερα

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת תרגול 3 ניתוח לשיעורין תאריך עדכון אחרון: 27 בפברואר 2011. ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת חסמי זמן ריצה נמוכים יותר מאשר חסמים המתקבלים כאשר

Διαβάστε περισσότερα

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון. Charles Augustin COULOMB (1736-1806) קולון חוק חוקקולון, אשרנקראעלשםהפיזיקאיהצרפתישארל-אוגוסטיןדהקולוןשהיהאחדהראשוניםשחקרבאופןכמותיאתהכוחותהפועלים ביןשניגופיםטעונים. מדידותיוהתבססועלמיתקןהנקראמאזניפיתול.

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #11

מבני נתונים ואלגוריתמים תרגול #11 מבני נתונים ואלגוריתמים תרגול # התאמת מחרוזות סימונים והגדרות: P[,,m] כך Σ * טקסט T )מערך של תווים( באורך T[,,n] n ותבנית P באורך m ש.m n התווים של P ו T נלקחים מאלפבית סופי Σ. לדוגמא: {a,b,,z},{,}=σ.

Διαβάστε περισσότερα

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

2 יחל ) השלמה ל - 5 יחל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת. 1 6 מאי, 2004 מועד הבחינה: 2 יח"ל ) השלמה ל - 5 יח"ל) פרק ראשון (50 נקודות) :1 Ï (מקור: שירלי רוזנברג כהן) נגדיר טיפוס נתונים חדש בשם תלת-מחסנית, כמבנה המכיל 3 מחסניות S3. S2, S1, נגדיר את הפעולות הבאות

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק שני

אלגוריתמים בתורת הגרפים חלק שני גירסה 1.00 5.12.2002 אלגוריתמים בתורת הגרפים חלק שני מסמך זה הינו השני בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. 16 במאי 2010 נסמן את מחלקת הצמידות של איבר בחבורה G על ידי } g.[] { y : g G, y g כעת נניח כי [y] [] עבור שני איברים, y G ונוכיח כי [y].[] מאחר והחיתוך

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה מיון (Sorting) void BubbleSort(int* A, int n){ for (i = ; i < n-; i++) for (j = n-; j >= i; j--) if ( a[j] > a[j+]) swap(&a[j], &a[j+]); מערך בן מספרים. קלט: מערך ובו המספרים מאוחסנים בסדר עולה (או יורד).

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 12

מתמטיקה בדידה תרגול מס' 12 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: נוסחאות נסיגה נוסחאות נסיגה באמצעות פונקציות יוצרות נוסחאות נסיגה באמצעות פולינום אופייני נוסחאות נסיגה לעתים מפורש לבעיה קומבינטורית אינו ידוע, אך יחסית קל להגיע

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים חידה לחימום בסל מקש יש צמר. כדורי 00 שני שחקנים משחקים בתורות: כל שחקן, בתורו, צריך להוציא כמות כלשהי של כדורי צמר מהסל לפחות כדור אחד, אך לא יותר ממחצית מכמות כדורי הצמר שבסל. מי שלא יכול לעשות מהלך (מתי

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות אלגוריתמים חמדניים אלגוריתם חמדן, הוא כזה שבכל צעד עושה את הבחירה הטובה ביותר האפשרית, ולא מתחרט בהמשך גישה זו נראית פשטנית מדי, וכמובן שלא תמיד היא נכונה, אך במקרים רבים היא מוצאת פתרון אופטימאלי בתרגול

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום- בעיות מינימוםמקסימום - שאלון 806 סיכום- בעיות מינימוםמקסימום - שאלון 806 בבעיותמינימום מקסימוםישלחפשאתנקודותהמינימוםהמוחלטוהמקסימוםהמוחלט. בשאלות מינימוםמקסימוםחובהלהראותבעזרתטבלה אובעזרתנגזרתשנייהשאכן מדובר עלמינימוםאומקסימום. לצורךקיצורהתהליך,

Διαβάστε περισσότερα

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

סדרות - תרגילים הכנה לבגרות 5 יח"ל

סדרות - תרגילים הכנה לבגרות 5 יחל סדרות - הכנה לבגרות 5 יח"ל 5 יח"ל סדרות - הכנה לבגרות איברים ראשונים בסדרה) ) S מסמן סכום תרגיל S0 S 5, S6 בסדרה הנדסית נתון: 89 מצא את האיבר הראשון של הסדרה תרגיל גוף ראשון, בשנייה הראשונה לתנועתו עבר

Διαβάστε περισσότερα

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב.

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב. אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 אתר הקורס.clickit3 מרצה : בני מוניץ הציון: מבחן סופי: 80% שיעורי בית 20% ואפשרות לבוחן אמצע 20% מגן גרפים הגדרה: תהי V קבוצה סופית לא ריקה. ותהי E קבוצה

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

co ארזים 3 במרץ 2016

co ארזים 3 במרץ 2016 אלגברה לינארית 2 א co ארזים 3 במרץ 2016 ניזכר שהגדרנו ווקטורים וערכים עצמיים של מטריצות, והראינו כי זהו מקרה פרטי של ההגדרות עבור טרנספורמציות. לכן כל המשפטים והמסקנות שהוכחנו לגבי טרנספורמציות תקפים גם

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס: תאריך הבחינה:... נובה פנדינה שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:..00 מספר הקורס:. סמסטר: א' מועד: שנה: שלוש שעות משך הבחינה: ללא חומר עזר חומר עזר: ב' הנחיות חשובות: רצוי לפתור את

Διαβάστε περισσότερα

מודלים חישוביים תרגולמס 5

מודלים חישוביים תרגולמס 5 מודלים חישוביים תרגולמס 5 30 במרץ 2016 נושאי התרגול: דקדוקים חסרי הקשר. למת הניפוח לשפות חסרות הקשר. פעולות סגור לשפות חסרות הקשר. 1 דקדוקים חסרי הקשר נזכיר כי דקדוק חסר הקשר הוא רביעיה =(V,Σ,R,S) G, כך

Διαβάστε περισσότερα

מבנה נתונים סיכומי הרצאות

מבנה נתונים סיכומי הרצאות מבנה נתונים סיכומי הרצאות 22 ביוני 2010 הערה לקראת המבחנים מרצה: דורית אהרונוב סוכם ע י: אור שריר פניות לתיקונים והערות: tnidtnid@gmail.com כרגע חסרים מספר דברים בסיכום, כמו פונקציות גיבוב, וכמובן שתמיד

Διαβάστε περισσότερα

פתרון תרגיל 4 יסודות מבני נתונים סמסטר א' תשע"ה שאלה 1:

פתרון תרגיל 4 יסודות מבני נתונים סמסטר א' תשעה שאלה 1: פתרון תרגיל 4 שאלה 1: הציעו דרך לממש תור )FIFO( באמצעות ערימה, תשובתכם צריכה לכלול פסאודו-קוד, המתאר את הפעולות הבאות: isempty(),enqueue(x), dequeue(), בנוסף נתחו זמן ריצה במקרה הגרוע ביותר עבור כ"א מהפעולות

Διαβάστε περισσότερα

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית: משפט הדיברגנץ תחום חסום וסגור בעל שפה חלקה למדי, ותהי F פו' וקטורית :F, R n R n אזי: div(f ) dxdy = F, n dr נוסחת גרין I: uδv dxdy = u v n dr u, v dxdy הוכחה: F = (u v v, u x y ) F = u v כאשר u פו' סקלרית:

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

. {e M: x e} מתקיים = 1 x X Y

. {e M: x e} מתקיים = 1 x X Y שימושי זרימה פרק 7.5-13 ב- Kleinberg/Tardos שידוך בגרף דו-צדדי עיבוד תמונות 1 בעיית השידוך באתר שידוכים רשומים m נשים ו- n גברים. תוכנת האתר מאתרת זוגות מתאימים. בהינתן האוסף של ההתאמות האפשריות, יש לשדך

Διαβάστε περισσότερα

מודלים חישוביים פתרון תרגיל 5

מודלים חישוביים פתרון תרגיל 5 מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי

Διαβάστε περισσότερα

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

אוטומט סופי דטרמיניסטי מוגדר עי החמישייה: 2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב

Διαβάστε περισσότερα

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME הנדסת המישור - תרגילים הכנה לבגרות תרגילים הנדסת המישור - תרגילים הכנה לבגרות באמצעות Q תרגיל 1 מעגל העובר דרך הקודקודים ו- של המקבילית ו- חותך את האלכסונים שלה בנקודות (ראה ציור) מונחות על,,, הוכח כי

Διαβάστε περισσότερα

אינפי - 1 תרגול בינואר 2012

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

שאלה 1 V AB פתרון AB 30 R3 20 R

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם. 7.8.2017 מבחן מועד ב' תאריך הבחינה: שמות המרצים: מר בועז ארד פרופ' עמוס ביימל מר יהונתן כהן דר' עדן כלמטץ' גב' מיכל שמש אנא קיראו היטב את ההוראות שלהלן: שם הקורס: תכנון אלגוריתמים מספר הקורס: 202-1-2041

Διαβάστε περισσότερα

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

קשר-חם : לקידום שיפור וריענון החינוך המתמטי הטכניון - מכון טכנולוגי לישראל המחלקה להוראת הטכנולוגיה והמדעים "קשר-חם" : לקידום שיפור וריענון החינוך המתמטי נושא: חקירת משוואות פרמטריות בעזרת גרפים הוכן ע"י: אביבה ברש. תקציר: בחומר מוצגת דרך לחקירת

Διαβάστε περισσότερα

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן .. The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן 03.01.16 . Factor Models.i = 1,..., n,r i נכסים, תשואות (משתנים מקריים) n.e[f j ] נניח = 0.j = 1,..., d,f j

Διαβάστε περισσότερα

CHAIN MATRIX MULTIPLICATION וגיא בן-חורין

CHAIN MATRIX MULTIPLICATION וגיא בן-חורין CHAIN MATRIX MULTIPLICATION פנוש אורי וגיא בן-חורין CHAIN MATRIX MULTIPLICATION חזרה קצרה על הכפלת מטריצות הגדרת בעיית הכפלת שרשרת מטריצות פתרון רקורסיבי לבעיה ייעול הפתרון הרקורסיבי ע"י memoization הצגת

Διαβάστε περισσότερα

מבני נתונים. (ב) ואז הוא הופך למערך המייצג את האינדקס האחרי אחרון של כל מספר: c

מבני נתונים. (ב) ואז הוא הופך למערך המייצג את האינדקס האחרי אחרון של כל מספר: c מבני נתונים תרגיל 3 פתרונות מיונים לינאריים 1. הריצו את מיון מנייה על המערך הבא: 5, 4, 1, 5, 1, 1, 2, 2, 5, 4, 4 הניחו שהחסם העליון לערכי המספרים במערך הוא = 6 k, והראו את שלבי הריצה של האלגוריתם. אין

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 2

מתמטיקה בדידה תרגול מס' 2 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: כמתים והצרנות. משתנים קשורים וחופשיים. 1 כמתים והצרנות בתרגול הקודם עסקנו בתחשיב הפסוקים, שבו הנוסחאות שלנו היו מורכבות מפסוקים יסודיים (אשר קיבלו ערך T או F) וקשרים.

Διαβάστε περισσότερα

השאלות ידי מצביעים לילדים.

השאלות ידי מצביעים לילדים. מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 4 השאלות 1. כתבו פונקציה לא רקורסיבית שמדפיסה ב- Postorder את כל הנתונים המאוכסנים בעץ בינארי T. הפונקציה אינה צריכה להיות תלויה במימוש העץ T. הניחו שנתון

Διαβάστε περισσότερα

אלגברה ליניארית 1 א' פתרון 2

אלגברה ליניארית 1 א' פתרון 2 אלגברה ליניארית א' פתרון 3 4 3 3 7 9 3. נשתמש בכתיבה בעזרת מטריצה בכל הסעיפים. א. פתרון: 3 3 3 3 3 3 9 אז ישנו פתרון יחיד והוא = 3.x =, x =, x 3 3 הערה: אפשר גם לפתור בדרך קצת יותר ארוכה, אבל מבלי להתעסק

Διαβάστε περισσότερα

תורת הקבוצות תרגיל בית 2 פתרונות

תורת הקבוצות תרגיל בית 2 פתרונות תורת הקבוצות תרגיל בית 2 פתרונות חיים שרגא רוזנר כ"ה בניסן, תשע"ה תזכורות תקציר איזומורפיזם סדר, רישא, טרנזיטיביות, סודרים, השוואת סודרים, סודר עוקב, סודר גבולי. 1. טרנזיטיבות וסודרים קבוצה A היא טרנזיטיבית

Διαβάστε περισσότερα

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות תורת המספרים סיכום הגדרות טענות ומשפטים אביב 017 1 פירוק לגורמים ראשוניים 1.1 הגדרות חוג A C נקראת חוג אם: היא מכילה את 0 ואת 1 סגורה תחת חיבור, חיסור, וכפל הפיך A חוג. a A נקרא הפיך אם 0,a.a 1 A קבוצת

Διαβάστε περισσότερα